package com.newsmanagement.dao;

import com.newsmanagement.entity.EumEntity;
import org.apache.ibatis.annotations.*;

import java.util.List;
import java.util.Map;

/**
 * @author xbr
 * 2017/12/5
 * 用户操作
 */
@Mapper
public interface IEumServiceDao {

    /**
     * 根据用户手机查询是否已经存在用户信息
     * 此方法用于添加用户时的判断，查询时包含逻辑删除的数据
     * @param mobilePhone 手机号码
     * @return List<Map<String, Object>>
     */
    @Select("SELECT * FROM EUM_T WHERE MOBILE_PHONE = #{arg0} AND DELETE_FLAG = 1")
    List<Map<String, Object>> getEumByMobilePhone(String mobilePhone);

    /**
     * 根据用户手机和密码查询是否已经存在用户信息
     * 此方法用于添加用户时的判断，查询时包含逻辑删除的数据
     * @param mobilePhone 手机号码
     * @param password 密码
     * @return List<Map<String, Object>>
     */
    @Select("SELECT * FROM EUM_T WHERE MOBILE_PHONE = #{arg0} AND PASSWORD = #{arg1} AND DELETE_FLAG = 1")
    List<Map<String, Object>> getEumCheckLogin(String mobilePhone ,String password);

    /**
     * 根据手机号码修改对应的用户信息
     * @param eumName 用户名
     * @param mobilePhone 手机号码
     * @param password 密码
     * @return int
     */
    @Update("update EUM_T set DELETE_FLAG = 1 ,EUM_NAME = #{arg0} ,PASSWORD = #{arg2} where MOBILE_PHONE = #{arg1}")
    int updateEumByMobilePhone(String eumName ,String mobilePhone ,String password);

    /**
     * 创建用户信息
     * @param eumName 用户名
     * @param mobilePhone 手机号码
     * @param password 密码
     * @return int
     */
    @Insert("INSERT INTO EUM_T(EUM_NAME,MOBILE_PHONE,PASSWORD) VALUES(#{arg0},#{arg1},#{arg2})")
    int addEum(String eumName ,String mobilePhone ,String password);

    /**
     * 根据用户主键id删除对应的用户信息（逻辑删除）
     * @param eumId 用户主键id
     * @return int 删除数据条数
     */
    @Update("update EUM_T set DELETE_FLAG = 0 where EUM_ID = #{arg0}")
    int deleteEum(Long eumId);
}
